package br.com.sebrae.pr.sgp.util.exceptions;

import javax.ejb.ApplicationException;

import br.com.sebrae.pr.sgp.util.CustomStringUtils;
import br.com.sebrae.pr.sgp.util.exceptions.messages.PropertyUtilMensagensErro;

/**
 * Classe que representa uma exceção de negócio.
 * 
 * @author Tanaka
 */
@ApplicationException(rollback = true)
public class ExcecaoDeNegocio extends RuntimeException {
	private static final long serialVersionUID = 923651457823061500L;

	private String msgKey;
	private String[] params;

	public ExcecaoDeNegocio(final String msgKey) {
		super(PropertyUtilMensagensErro.getProperty(msgKey));
		this.msgKey = msgKey;
	}

	public ExcecaoDeNegocio(final String msgKey, final String[] params) {
		super(CustomStringUtils.replace(
				PropertyUtilMensagensErro.getProperty(msgKey), params));
		this.msgKey = msgKey;
		this.params = params != null ? params.clone() : null;
	}

	public String getMsgKey() {
		return msgKey;
	}

	public String[] getParams() {
		return params != null ? params.clone() : null;
	}

}
